package cn.edu.nju.software.greencreditsystem.DAO;

import cn.edu.nju.software.greencreditsystem.domain.EnvironmentExcel;
import cn.edu.nju.software.greencreditsystem.domain.FinancialExcel;
import java.util.List;

/**
 * 作者：何启睿
 * 创建时间：2011-8-15
 * 类描述：财务报表Excel类DAO接口
 */
public interface ExcelDAO
{
    public boolean save(FinancialExcel fe, int enterpriseID);
    public boolean save(EnvironmentExcel ee, int enterpriseID);
    public FinancialExcel getFinancialExcel(int financialID);
    public EnvironmentExcel getEnvironmentExcel(int environmentID);
    public boolean update(FinancialExcel fe);
    public boolean update(EnvironmentExcel ee);
    public boolean delete(FinancialExcel fe, int enterpriseID);
    public boolean delete(EnvironmentExcel ee, int enterpriseID);
    
    /**
     * 方法描述：获得指定企业当前需提交和已提交的财务报表
     * param：企业id
     * return：FinancialExcel对象数组（按时间降序排列）
    */
    public List<FinancialExcel> getCurrentFinancial(int enterpriseID);
    
    /**
     * 方法描述：获得指定企业当前需提交和已提交的环境报表
     * param：企业id
     * return：EnvironmentExcel对象数组（按时间降序排列）
    */
    public List<EnvironmentExcel> getCurrentEnvironment(int enterpriseID);
    
    /**
     * 方法描述：获得指定企业未审核的财务报表
     * param：企业id
     * return：FinancialExcel对象数组（按时间降序排列）
    */
    public List<FinancialExcel> getFinancialUnchecked(int enterpriseID);
    
    /**
     * 方法描述：获得未审核的财务报表
     * param：
     * return：FinancialExcel对象数组（按时间降序排列）
    */
    public List<FinancialExcel> getFinancialUnchecked();
    
    /**
     * 方法描述：获得未审核的环境报表
     * param：
     * return：EnvironmentExcel对象数组（按时间降序排列）
    */
    public List<EnvironmentExcel> getEnvironmentUnchecked(int enterpriseID);
    
    /**
     * 方法描述：获得未审核的环境报表
     * param：
     * return：EnvironmentExcel对象数组（按时间降序排列）
    */
    public List<EnvironmentExcel> getEnvironmentUnchecked();
    
    /**
     * 方法描述：获得指定企业已审核的财务报表
     * param：企业id
     * return：FinancialExcel对象数组（按时间降序排列）
    */
    public List<FinancialExcel> getFinancialChecked(int enterpriseID);
    
    /**
     * 方法描述：获得指定企业已审核的环境报表
     * param：企业id
     * return：EnvironmentExcel对象数组（按时间降序排列）
    */
    public List<EnvironmentExcel> getEnvironmentChecked(int enterpriseID);
    
    /**
     * 方法描述：获得指定企业距下次提交环境报表的天数
     * param：企业id
     * return：天数
    */
    public int nextEnvironment(int enterpriseID);
    
    /**
     * 方法描述：获得指定企业距下次提交财务报表的天数
     * param：企业id
     * return：天数
    */
    public int nextFinancial(int enterpriseID);
}
